/**
 * 
 */
package com.nari.heatshare.service;

import java.util.List;
import java.util.Map;

import com.nari.coreframe.service.IGenericService;
import com.nari.heatshare.model.IUserShareResult;
import com.nari.heatshare.utils.excelexport.heatcharge.vo.AreaResultBillListVo;
import com.nari.platform.model.PageCond;
import com.nari.platform.model.ResultWithPageCond;

/**
 * 
 * @author Xiaopeng
 * @date 2013-8-19
 */
public interface IUserShareResultService extends IGenericService<IUserShareResult, String> {

	/**
	 * 分页查询用户分摊结果
	 * @param projectUID 所属项目(可选)
	 * @param communityUID 所属小区(可选)
	 * @param buildingUID 所属楼栋(可选)
	 * @param heatRoomUID 所属热用户(可选)
	 * @param pageCond
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-10-6
	 */
	public ResultWithPageCond<IUserShareResult> queryUserShareResultPage(String projectUID, 
			String communityUID, String buildingUID, String heatRoomUID, 
			PageCond pageCond) throws Exception;
	
	/**
	 * 通过用户分摊列表查询与之关联的城市映射表
	 * @param userShareResultList 用户分摊列表，若列表为空，则返回空的映射表
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-10-6
	 */
	public Map<String, String> queryReferCityMap(List<IUserShareResult> userShareResultList) throws Exception;
	
	/**
	 * 通过用户分摊列表查询与之关联的小区映射表
	 * @param userShareResultList 用户分摊列表，若列表为空，则返回空的映射表
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-10-6
	 */
	public Map<String, String> queryReferCommunityMap(List<IUserShareResult> userShareResultList) throws Exception;
	
	/**
	 * 通过用户分摊列表查询与之关联的楼栋映射表
	 * @param userShareResultList 用户分摊列表，若列表为空，则返回空的映射表
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-10-6
	 */
	public Map<String, String> queryReferBuildingMap(List<IUserShareResult> userShareResultList) throws Exception;
	
	/**
	 * 通过用户分摊列表查询与之关联的热用户映射表
	 * @param userShareResultList 用户分摊列表，若列表为空，则返回空的映射表
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-10-6
	 */
	public Map<String, String> queryReferRoomMap(List<IUserShareResult> userShareResultList) throws Exception;
	
	/**
	 * 通过用户分摊列表查询与之关联的分摊域分摊映射表
	 * @param userShareResultList 用户分摊列表，若列表为空，则返回空的映射表
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-10-6
	 */
	public Map<String, String> queryReferShareResultMap(List<IUserShareResult> userShareResultList) throws Exception;
	
	/**
	 * 通过分摊域分摊ID分页查询所属的用户分摊列表
	 * @param areaResultUID 分摊域分摊ID(必填)
	 * @param roomOwner 户主姓名(可选)
	 * @param houseNo 门牌号(可选)
	 * @param pageCond
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2013-10-16
	 */
	public ResultWithPageCond<IUserShareResult> queryUserPageByAreaResultUID(String areaResultUID, 
			String roomOwner, String houseNo, PageCond pageCond) throws Exception;
	
	/**
	 * 查询分摊域分摊账单列表信息（分摊域下的用户账单）摘要
	 * @param areaResultUID
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2015-4-2
	 */
	public List<AreaResultBillListVo> queryAreaResultExportList(String areaResultUID) throws Exception;
	
}
